package org.arnetminer.personalized.dao;

import java.util.List;

import org.arnetminer.personalized.vo.Source;
import org.arnetminer.personalized.vo.User;


public interface UserDAO {
	public User findById(long id);
    
    public List findByProperty(String propertyName, Object value);

	public List findByEmail(Object email);
	
	public List findByFirstName(Object firstName);
	
	public List findByLastName(Object lastName);

	public List findAll();
	
	public void attachClean(User instance);

	public void attachDirty(User instance);

	public void delete(User persistentInstance);

	public List findByExample(User instance);

	public Object merge(User detachedInstance);

	public void save(User transientInstance);
	
	public List findByProperties(List properties, List values);
	
	public List findByLikeProperties(List properties, List values, int start, int max);
	
	public int findCountByLikeProperties(List properties, List values);
	
	public List validate(String email, String password);
	
	public List findByOrgName(String orgName);
	
	public Source findSourceById(long id);

}
